package com.hyts.aop.handler.reflection;

import com.hyts.aop.handler.base.AfterMethod;
import com.hyts.aop.handler.base.BeforeMethod;
import com.hyts.aop.handler.base.RoundMethod;
import com.hyts.aop.handler.base.ValidateMethod;

/**
 * project-name:coffice-toolbox
 * package-name:com.hyts.aop.handler.reflection
 * author:Libo/Alex
 * create-date:2019-07-13 15:01
 * copyright:libo-hyts-github
 * email:libo2dev@aliyun.com
 * description:此类主要用于:
 */
public class ReflectionFacadeHandler {

    /**
     * <b>execute:主要用于操作执行的方法</b>
     * <p>开发者无需管理系统的java proxy管理的invoke方法，只需要覆盖此方法即可</p>
     * @return
     * @exception
     */
    private static BeforeMethod beforeMethodHandler;

    private static AfterMethod afterMethodHandler;

    private static RoundMethod roundMethodHandler;

    private static ValidateMethod pointcutMethodHandler;

    public static BeforeMethod getBeforeMethodHandler() {
        return beforeMethodHandler;
    }

    public static void setBeforeMethodHandler(BeforeMethod beforeMethodHandler) {
        ReflectionFacadeHandler.beforeMethodHandler = beforeMethodHandler;
    }

    public static AfterMethod getAfterMethodHandler() {
        return afterMethodHandler;
    }

    public static void setAfterMethodHandler(AfterMethod afterMethodHandler) {
        ReflectionFacadeHandler.afterMethodHandler = afterMethodHandler;
    }

    public static RoundMethod getRoundMethodHandler() {
        return roundMethodHandler;
    }

    public static void setRoundMethodHandler(RoundMethod roundMethodHandler) {
        ReflectionFacadeHandler.roundMethodHandler = roundMethodHandler;
    }

    public static ValidateMethod getPointcutMethodHandler() {
        return pointcutMethodHandler;
    }

    public static void setPointcutMethodHandler(ValidateMethod pointcutMethodHandler) {
        ReflectionFacadeHandler.pointcutMethodHandler = pointcutMethodHandler;
    }
}
